CREATE FUNCTION DenyAccessAccountingCodeUser (@User Smallint)
RETURNS
@List TABLE
   (
     Code  varchar(20)
   )
AS  
BEGIN 
	DECLARE @Code VARCHAR(20)
	DECLARE @CacheDate AS TABLE
	(
	  Code VARCHAR(20)
	)

	DECLARE @Account AS TABLE
	(
	  Code VARCHAR(20)
	)

	INSERT INTO @Account(Code)
	SELECT Acc_Code FROM dbo.Account WITH (NOLOCK)
	WHERE Acc_Level > 1
	DECLARE CursorAccounting CURSOR FOR
	SELECT Code FROM dbo.UsersUnavailableToAccounts WITH (NOLOCK)
		WHERE Type = 2 AND Parent = (SELECT Id FROM dbo.UsersUnavailableToAccounts WITH (NOLOCK)
									 WHERE Code = @User AND Type = 1)
	OPEN CursorAccounting
	FETCH NEXT FROM CursorAccounting INTO @Code
	WHILE @@FETCH_STATUS = 0
	BEGIN
	  INSERT INTO @CacheDate(Code)
	  SELECT Code FROM @Account WHERE Code LIKE @Code + '%'
	  FETCH NEXT FROM CursorAccounting INTO @Code
	END
	CLOSE CursorAccounting
	DEALLOCATE CursorAccounting

	INSERT @List(Code)
	SELECT Code FROM @CacheDate
	RETURN
End



